/** A simple RMI server

I.  Server Components

  A RMI server program consists of two or three parts:
	interface, implementation, and server application.
The server application can be combined with implementation
by adding main() in the implementation.

  RMI Server Interface:
      - Extends Remote interface which has no method.
      - RMI server program interface lists all methods callable from
	remote client program.
      - Every method in the interface must throw a RemoteException.

  RMI Server Implementation:
      - A class that extends RemoteObject or its subclass and implements
	the RMI server program interface.

  RMI Application
      - Define a remote server object.
      - Bind the object to a unique name in a namespace.
      - The RMI application may or may not be in a separate source file.
	You can add a main() in RMI server implementation class and
	define remote server object and bind object in main().

II. Compilation

  After the interface and the implementation is written, compile implementation
and thus, compile the interface automatically.

  After the server implementation is compiled, run server utilty rmic to
generate stub used in the client and skeleton used on the server-side.

  The stub and skeleton provide high level communication between remote client
and remote server.

  You need to move RMI server interface and RMI server implementation stub to 
a place where the RMI client program can access. 

*/

import java.rmi.*;

public interface SimpleServer2 extends Remote {
    // This name defined where will be used by RMI client to 
    // refer the SimpleSever2Impl object.
    static String serverName = "SimpleServer2";
    public void write(String clientName, String msg ) throws RemoteException;

}
